const express = require('express');
const router = express.Router();
// post在body内取数据，get在query内取数据
const tools = require('../tools/public');


const User = require('../control/User/User')
const Sms = require('../control/Sms/Sms')

/* 用户注册 */
router.post('/register', async function (req, res, next) {
    let {Account, PassWord, Code} = req.body,
        result = null;
    try {
        // 账号  + （密码/验证码）参数限制
        if (!Account || (!PassWord && !Code)) return res.send(tools.ReturnData(204, '参数错误！'));
        result = await User.Sel_singleArg({Account});
        if (result.length > 0) { // 存在，直接登录

        } else { // 不存在直接注册
            result = await User.Add({Account, PassWord, Code});
        }
        res.send('注册');
    } catch (e) {
        console.log(e)
        return res.send(tools.ReturnData(500, '系统内部错误！'));
    }
});
/* 用户登录 */
router.post('/login', async function (req, res, next) {
    let {Account, PassWord, Code} = req.body,
        result = null;
    // StrategyMode = function (type){
    //     let config = {
    //     }
    // }

    try {
        // 账号  + （密码/验证码）参数限制
        if (!Account || (!PassWord && !Code)) return res.send(tools.ReturnData(204, '参数错误！'));
        result = await User.Sel_singleArg({Account});
        if (result.length > 0) { // 存在，直接登录
            if (result[0].PassWord !== PassWord) {
                res.send(tools.ReturnData(204, '账号密码错误！'));
            } else {
                let deviceList = result[0].LoginIp;
                if(deviceList.length>=3){
                    deviceList.shift()
                }
                deviceList.push({
                    ip:req.ip.match(/\d+\.\d+\.\d+\.\d+/)[0],
                    Token:tools.create_token()
                })
                result = await User.Upd(result[0]._id,{LoginIp:deviceList});
                console.log(result)
                res.send(tools.ReturnData(200, '登录成功！'));
            }
        } else { // 不存在
            res.send(tools.ReturnData(204, '该账号不存在！'));
        }
    } catch (e) {
        console.log(e)
        return res.send(tools.ReturnData(500, '系统内部错误！'));
    }
});
module.exports = router;
